package com.solution.admin.product.entity;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.solution.common.entity.BaseEntity;

/**
 * 商品信息实体类
 * 
 * @author xu_cc
 * @date 2017-08-29 20:09:14
 */
public class ProductEntity extends BaseEntity {
	private static final long serialVersionUID = -3926291988306842687L;

	private String properties;
	private String propertyTmeplateId;
	private String productImgStr;
	private List<ProductPropertyRelaEntity> productPropertyRelaList;
	private List<ProductPriceEntity> productPriceList;

	private String productCategoryName;
	private String brandName;
	private String childBrandName;

	private String productTagName;
	private String promotionTagName;
	private String productImgPath;

	private String priceLevelStr;
	private String diffPriceStr;
	
	
	
	/* 显示权重，排序级别*/
	private Integer sortWeight;
	/* 报价单排序级别*/
	private Integer quotaSortNo;
	/* 预售商品预付定金占商品比例 */
	private BigDecimal depositRate;
	/*是否在报价单展示（1=是，0=否）*/
	private Integer isQuato;
	/*到货天数*/
	private Date depositDeliveryDay;
	
	

	// 价格整数部分
	private String productPriceInteger;
	// 价格小数部分
	private String productPriceDecimal;
	
	/**
	 * 普通物流运费
	 */
	private BigDecimal normalDeliveryFee;
	/**
	 * 快递物流运费
	 */
	private BigDecimal expressDeliveryFee;
	/**
	 * 其它物流运费
	 */
	private BigDecimal otherDeliveryFee;
	
	/**
	 * 商品主图片
	 */
	private String mainImagePath;

	/* 商品规格选择 */
	private List<ProductSpecRelaEntity> productSpecRelaList;
	/* 规格组装集合 */
	private List<ProductSpecCompositionEntity> productSpecCompositionList;

	private List<ProductRecommendEntity> productRelaList;

	/**
	 * 标题
	 */
	private String productTitle;
	/**
	 * 是否是积分商品（1=积分商品，0=正常商品）
	 * */
	private Integer isPointProduct;
	
	/**
	 * 关键字（空格分隔）
	 */
	private String keyWord;
	/**
	 * 排序编号
	 */
	private Integer sortNo;
	/**
	 * 商品状态（1=正常，0=已售罄，2=预售中，3=下架）
	 */
	private Integer productStatus;

	/** 最低限价 */
	private BigDecimal lowestPrice;
	/**
	 * 商品编码
	 */
	private String productCode;

	/**
	 * 商品名称
	 */
	private String productName;

	/**
	 * 商品品牌
	 */
	private String brandCode;

	/**
	 * 商品子品牌
	 */
	private String childBrandCode;

	/**
	 * 商品分类
	 */
	private Long productCategoryId;

	/**
	 * 商品标签
	 */
	private String productTag;

	/**
	 * 活动标签
	 */
	private String promotionTag;

	/**
	 * 商品计量单位ID
	 */
	private String productSalesUnit;
	/**
	 * 商品计量单位名称
	 */
	private String productSalesUnitName;

	/**
	 * 商品寄重
	 */
	private String productWeight;

	/**
	 * 商品描述
	 */
	private String productIntro;

	/**
	 * 审核状态
	 */
	private Integer approveStatus;

	/**
	 * 商品归属类型 (平台商品、第三方商品)
	 */
	private Integer productType;

	/**
	 * 商品货主(商家上架的商品)
	 */
	private Integer productMerchantId;

	/**
	 * 上下架状态
	 */
	// private Integer onlineStatus;

	/**
	 * 最大积分兑换比例
	 */
	private BigDecimal pointExchangeRate;

	/**
	 * 商品积分系数
	 */
	private BigDecimal pointCieffucuebt;
	/** 佣金比例 */
	private BigDecimal commissionRate;

	/**
	 * 市场价
	 */
	private BigDecimal marketPrice;

	/**
	 * 市场价格级别
	 */
	private String marketPriceLevel;

	/**
	 * 基价
	 */
	private BigDecimal basePrice;

	/**
	 * 基价价格级别
	 */
	private String basePriceLevel;

	/**
	 * 主商品价格 = 基价+客户级别差价
	 */
	private BigDecimal mainProductPrice;

	/**
	 * 商品价格 基价+客户级别差价+默认规格价格
	 */
	private BigDecimal productPrice;

	/**
	 * 默认规格价格
	 */
	private BigDecimal defaultSpecPrice;

	/**
	 * 模拟成本
	 */
	private BigDecimal simulationPrice;

	/**
	 * 模拟成本价格级别
	 */
	private String simulationPriceLevel;

	/**
	 * 游客价
	 */
	private BigDecimal touristPrice;

	/**
	 * 游客价格级别
	 */
	private String touristPriceLevel;

	/**
	 * 修改人
	 */
	private String modifier;
	
	/**
	 * 游客可见性  1 可见  0-不可见
	 */
	private String touristVisible;
	

	/**
	 * @return the childBrandName
	 */
	public String getChildBrandName() {
		return childBrandName;
	}

	/**
	 * @param childBrandName
	 *            the childBrandName to set
	 */
	public void setChildBrandName(String childBrandName) {
		this.childBrandName = childBrandName;
	}

	/**
	 * @return the productRelaList
	 */
	public List<ProductRecommendEntity> getProductRelaList() {
		return productRelaList;
	}

	/**
	 * @return the priceLevelStr
	 */
	public String getPriceLevelStr() {
		return priceLevelStr;
	}

	/**
	 * @param priceLevelStr
	 *            the priceLevelStr to set
	 */
	public void setPriceLevelStr(String priceLevelStr) {
		this.priceLevelStr = priceLevelStr;
	}

	/**
	 * @return the diffPriceStr
	 */
	public String getDiffPriceStr() {
		return diffPriceStr;
	}

	/**
	 * @param diffPriceStr
	 *            the diffPriceStr to set
	 */
	public void setDiffPriceStr(String diffPriceStr) {
		this.diffPriceStr = diffPriceStr;
	}

	/**
	 * @param productRelaList
	 *            the productRelaList to set
	 */
	public void setProductRelaList(List<ProductRecommendEntity> productRelaList) {
		this.productRelaList = productRelaList;
	}

	/**
	 * @return the productSpecRelaList
	 */
	public List<ProductSpecRelaEntity> getProductSpecRelaList() {
		return productSpecRelaList;
	}

	/**
	 * @param productSpecRelaList
	 *            the productSpecRelaList to set
	 */
	public void setProductSpecRelaList(List<ProductSpecRelaEntity> productSpecRelaList) {
		this.productSpecRelaList = productSpecRelaList;
	}

	/**
	 * @return the productSpecCompositionList
	 */
	public List<ProductSpecCompositionEntity> getProductSpecCompositionList() {
		return productSpecCompositionList;
	}

	/**
	 * @param productSpecCompositionList
	 *            the productSpecCompositionList to set
	 */
	public void setProductSpecCompositionList(List<ProductSpecCompositionEntity> productSpecCompositionList) {
		this.productSpecCompositionList = productSpecCompositionList;
	}

	/**
	 * @return the properties
	 */
	public String getProperties() {
		return properties;
	}

	/**
	 * @return the commissionRate
	 */
	public BigDecimal getCommissionRate() {
		return commissionRate;
	}

	/**
	 * @param commissionRate
	 *            the commissionRate to set
	 */
	public void setCommissionRate(BigDecimal commissionRate) {
		this.commissionRate = commissionRate;
	}

	/**
	 * @param properties
	 *            the properties to set
	 */
	public void setProperties(String properties) {
		this.properties = properties;
	}

	/**
	 * @return the propertyTmeplateId
	 */
	public String getPropertyTmeplateId() {
		return propertyTmeplateId;
	}

	/**
	 * @param propertyTmeplateId
	 *            the propertyTmeplateId to set
	 */
	public void setPropertyTmeplateId(String propertyTmeplateId) {
		this.propertyTmeplateId = propertyTmeplateId;
	}

	/**
	 * @return the productImgStr
	 */
	public String getProductImgStr() {
		return productImgStr;
	}

	/**
	 * @param productImgStr
	 *            the productImgStr to set
	 */
	public void setProductImgStr(String productImgStr) {
		this.productImgStr = productImgStr;
	}

	/**
	 * @return the productPropertyRelaList
	 */
	public List<ProductPropertyRelaEntity> getProductPropertyRelaList() {
		return productPropertyRelaList;
	}

	/**
	 * @param productPropertyRelaList
	 *            the productPropertyRelaList to set
	 */
	public void setProductPropertyRelaList(List<ProductPropertyRelaEntity> productPropertyRelaList) {
		this.productPropertyRelaList = productPropertyRelaList;
	}

	/**
	 * @return the productCategoryName
	 */
	public String getProductCategoryName() {
		return productCategoryName;
	}

	/**
	 * @param productCategoryName
	 *            the productCategoryName to set
	 */
	public void setProductCategoryName(String productCategoryName) {
		this.productCategoryName = productCategoryName;
	}

	/**
	 * @return the brandName
	 */
	public String getBrandName() {
		return brandName;
	}

	/**
	 * @param brandName
	 *            the brandName to set
	 */
	public void setBrandName(String brandName) {
		this.brandName = brandName;
	}

	/**
	 * @return the productTagName
	 */
	public String getProductTagName() {
		return productTagName;
	}

	/**
	 * @param productTagName
	 *            the productTagName to set
	 */
	public void setProductTagName(String productTagName) {
		this.productTagName = productTagName;
	}

	/**
	 * @return the productImgPath
	 */
	public String getProductImgPath() {
		return productImgPath;
	}

	/**
	 * @param productImgPath
	 *            the productImgPath to set
	 */
	public void setProductImgPath(String productImgPath) {
		this.productImgPath = productImgPath;
	}

	/**
	 * @return the productCode
	 */
	public String getProductCode() {
		return productCode;
	}

	/**
	 * @param productCode
	 *            the productCode to set
	 */
	public void setProductCode(String productCode) {
		this.productCode = productCode;
	}

	/**
	 * @return the productName
	 */
	public String getProductName() {
		return productName;
	}

	/**
	 * @param productName
	 *            the productName to set
	 */
	public void setProductName(String productName) {
		this.productName = productName;
	}

	/**
	 * @return the brandCode
	 */
	public String getBrandCode() {
		return brandCode;
	}

	/**
	 * @param brandCode
	 *            the brandCode to set
	 */
	public void setBrandCode(String brandCode) {
		this.brandCode = brandCode;
	}

	/**
	 * @return the childBrandCode
	 */
	public String getChildBrandCode() {
		return childBrandCode;
	}

	/**
	 * @param childBrandCode
	 *            the childBrandCode to set
	 */
	public void setChildBrandCode(String childBrandCode) {
		this.childBrandCode = childBrandCode;
	}

	/**
	 * @return the productCategoryId
	 */
	public Long getProductCategoryId() {
		return productCategoryId;
	}

	/**
	 * @param productCategoryId
	 *            the productCategoryId to set
	 */
	public void setProductCategoryId(Long productCategoryId) {
		this.productCategoryId = productCategoryId;
	}

	/**
	 * @return the productTag
	 */
	public String getProductTag() {
		return productTag;
	}

	/**
	 * @param productTag
	 *            the productTag to set
	 */
	public void setProductTag(String productTag) {
		this.productTag = productTag;
	}

	/**
	 * @return the promotionTag
	 */
	public String getPromotionTag() {
		return promotionTag;
	}

	/**
	 * @param promotionTag
	 *            the promotionTag to set
	 */
	public void setPromotionTag(String promotionTag) {
		this.promotionTag = promotionTag;
	}

	/**
	 * @return the productSalesUnit
	 */
	public String getProductSalesUnit() {
		return productSalesUnit;
	}

	/**
	 * @param productSalesUnit
	 *            the productSalesUnit to set
	 */
	public void setProductSalesUnit(String productSalesUnit) {
		this.productSalesUnit = productSalesUnit;
	}

	/**
	 * @return the productWeight
	 */
	public String getProductWeight() {
		return productWeight;
	}

	/**
	 * @param productWeight
	 *            the productWeight to set
	 */
	public void setProductWeight(String productWeight) {
		this.productWeight = productWeight;
	}

	/**
	 * @return the productIntro
	 */
	public String getProductIntro() {
		return productIntro;
	}

	/**
	 * @param productIntro
	 *            the productIntro to set
	 */
	public void setProductIntro(String productIntro) {
		this.productIntro = productIntro;
	}

	/**
	 * @return the approveStatus
	 */
	public Integer getApproveStatus() {
		return approveStatus;
	}

	/**
	 * @param approveStatus
	 *            the approveStatus to set
	 */
	public void setApproveStatus(Integer approveStatus) {
		this.approveStatus = approveStatus;
	}

	/**
	 * @return the productType
	 */
	public Integer getProductType() {
		return productType;
	}

	/**
	 * @param productType
	 *            the productType to set
	 */
	public void setProductType(Integer productType) {
		this.productType = productType;
	}

	/**
	 * @return the productMerchantId
	 */
	public Integer getProductMerchantId() {
		return productMerchantId;
	}

	/**
	 * @param productMerchantId
	 *            the productMerchantId to set
	 */
	public void setProductMerchantId(Integer productMerchantId) {
		this.productMerchantId = productMerchantId;
	}

	/**
	 * @return the pointExchangeRate
	 */
	public BigDecimal getPointExchangeRate() {
		return pointExchangeRate;
	}

	/**
	 * @param pointExchangeRate
	 *            the pointExchangeRate to set
	 */
	public void setPointExchangeRate(BigDecimal pointExchangeRate) {
		this.pointExchangeRate = pointExchangeRate;
	}

	/**
	 * @return the pointCieffucuebt
	 */
	public BigDecimal getPointCieffucuebt() {
		return pointCieffucuebt;
	}

	/**
	 * @param pointCieffucuebt
	 *            the pointCieffucuebt to set
	 */
	public void setPointCieffucuebt(BigDecimal pointCieffucuebt) {
		this.pointCieffucuebt = pointCieffucuebt;
	}

	/**
	 * @return the marketPrice
	 */
	public BigDecimal getMarketPrice() {
		return marketPrice;
	}

	/**
	 * @param marketPrice
	 *            the marketPrice to set
	 */
	public void setMarketPrice(BigDecimal marketPrice) {
		this.marketPrice = marketPrice;
	}

	/**
	 * @return the marketPriceLevel
	 */
	public String getMarketPriceLevel() {
		return marketPriceLevel;
	}

	/**
	 * @param marketPriceLevel
	 *            the marketPriceLevel to set
	 */
	public void setMarketPriceLevel(String marketPriceLevel) {
		this.marketPriceLevel = marketPriceLevel;
	}

	/**
	 * @return the basePrice
	 */
	public BigDecimal getBasePrice() {
		return basePrice;
	}

	/**
	 * @param basePrice
	 *            the basePrice to set
	 */
	public void setBasePrice(BigDecimal basePrice) {
		this.basePrice = basePrice;
	}

	/**
	 * @return the basePriceLevel
	 */
	public String getBasePriceLevel() {
		return basePriceLevel;
	}

	/**
	 * @param basePriceLevel
	 *            the basePriceLevel to set
	 */
	public void setBasePriceLevel(String basePriceLevel) {
		this.basePriceLevel = basePriceLevel;
	}

	/**
	 * @return the simulationPrice
	 */
	public BigDecimal getSimulationPrice() {
		return simulationPrice;
	}

	/**
	 * @param simulationPrice
	 *            the simulationPrice to set
	 */
	public void setSimulationPrice(BigDecimal simulationPrice) {
		this.simulationPrice = simulationPrice;
	}

	/**
	 * @return the simulationPriceLevel
	 */
	public String getSimulationPriceLevel() {
		return simulationPriceLevel;
	}

	/**
	 * @param simulationPriceLevel
	 *            the simulationPriceLevel to set
	 */
	public void setSimulationPriceLevel(String simulationPriceLevel) {
		this.simulationPriceLevel = simulationPriceLevel;
	}

	/**
	 * @return the touristPrice
	 */
	public BigDecimal getTouristPrice() {
		return touristPrice;
	}

	/**
	 * @param touristPrice
	 *            the touristPrice to set
	 */
	public void setTouristPrice(BigDecimal touristPrice) {
		this.touristPrice = touristPrice;
	}

	/**
	 * @return the touristPriceLevel
	 */
	public String getTouristPriceLevel() {
		return touristPriceLevel;
	}

	/**
	 * @param touristPriceLevel
	 *            the touristPriceLevel to set
	 */
	public void setTouristPriceLevel(String touristPriceLevel) {
		this.touristPriceLevel = touristPriceLevel;
	}

	/**
	 * @return the modifier
	 */
	public String getModifier() {
		return modifier;
	}

	/**
	 * @param modifier
	 *            the modifier to set
	 */
	public void setModifier(String modifier) {
		this.modifier = modifier;
	}

	public String getMainImagePath() {
		return mainImagePath;
	}

	public void setMainImagePath(String mainImagePath) {
		this.mainImagePath = mainImagePath;
	}

	/**
	 * @return the lowestPrice
	 */
	public BigDecimal getLowestPrice() {
		return lowestPrice;
	}

	/**
	 * @param lowestPrice
	 *            the lowestPrice to set
	 */
	public void setLowestPrice(BigDecimal lowestPrice) {
		this.lowestPrice = lowestPrice;
	}

	/**
	 * @return the productPriceList
	 */
	public List<ProductPriceEntity> getProductPriceList() {
		return productPriceList;
	}

	/**
	 * @param productPriceList
	 *            the productPriceList to set
	 */
	public void setProductPriceList(List<ProductPriceEntity> productPriceList) {
		this.productPriceList = productPriceList;
	}

	public String getProductPriceInteger() {
		return productPriceInteger;
	}

	public void setProductPriceInteger(String productPriceInteger) {
		this.productPriceInteger = productPriceInteger;
	}

	public String getProductPriceDecimal() {
		return productPriceDecimal;
	}

	public void setProductPriceDecimal(String productPriceDecimal) {
		this.productPriceDecimal = productPriceDecimal;
	}

	public String getProductSalesUnitName() {
		return productSalesUnitName;
	}

	public void setProductSalesUnitName(String productSalesUnitName) {
		this.productSalesUnitName = productSalesUnitName;
	}

	public BigDecimal getDefaultSpecPrice() {
		return defaultSpecPrice;
	}

	/**
	 * @return the sortNo
	 */
	public Integer getSortNo() {
		return sortNo;
	}

	/**
	 * @param sortNo
	 *            the sortNo to set
	 */
	public void setSortNo(Integer sortNo) {
		this.sortNo = sortNo;
	}

	public BigDecimal getMainProductPrice() {
		return mainProductPrice;
	}

	public void setMainProductPrice(BigDecimal mainProductPrice) {
		this.mainProductPrice = mainProductPrice;
	}

	public BigDecimal getProductPrice() {
		return productPrice;
	}

	public void setProductPrice(BigDecimal productPrice) {
		this.productPrice = productPrice;
	}

	public void setDefaultSpecPrice(BigDecimal defaultSpecPrice) {
		this.defaultSpecPrice = defaultSpecPrice;
	}

	/**
	 * @return the productStatus
	 */
	public Integer getProductStatus() {
		return productStatus;
	}

	/**
	 * @param productStatus
	 *            the productStatus to set
	 */
	public void setProductStatus(Integer productStatus) {
		this.productStatus = productStatus;
	}

	/**
	 * @return the promotionTagName
	 */
	public String getPromotionTagName() {
		return promotionTagName;
	}

	/**
	 * @param promotionTagName
	 *            the promotionTagName to set
	 */
	public void setPromotionTagName(String promotionTagName) {
		this.promotionTagName = promotionTagName;
	}

	/**
	 * @return the keyWord
	 */
	public String getKeyWord() {
		return keyWord;
	}

	/**
	 * @param keyWord
	 *            the keyWord to set
	 */
	public void setKeyWord(String keyWord) {
		this.keyWord = keyWord;
	}

	/**
	 * @return the productTitle
	 */
	public String getProductTitle() {
		return productTitle;
	}

	/**
	 * @param productTitle the productTitle to set
	 */
	public void setProductTitle(String productTitle) {
		this.productTitle = productTitle;
	}

	/**
	 * @return the isPointProduct
	 */
	public Integer getIsPointProduct() {
		return isPointProduct;
	}

	/**
	 * @param isPointProduct the isPointProduct to set
	 */
	public void setIsPointProduct(Integer isPointProduct) {
		this.isPointProduct = isPointProduct;
	}

	public BigDecimal getNormalDeliveryFee() {
		return normalDeliveryFee;
	}

	public void setNormalDeliveryFee(BigDecimal normalDeliveryFee) {
		this.normalDeliveryFee = normalDeliveryFee;
	}

	public BigDecimal getExpressDeliveryFee() {
		return expressDeliveryFee;
	}

	public void setExpressDeliveryFee(BigDecimal expressDeliveryFee) {
		this.expressDeliveryFee = expressDeliveryFee;
	}

	public BigDecimal getOtherDeliveryFee() {
		return otherDeliveryFee;
	}

	public void setOtherDeliveryFee(BigDecimal otherDeliveryFee) {
		this.otherDeliveryFee = otherDeliveryFee;
	}

	/**
	 * @return the sortWeight
	 */
	public Integer getSortWeight() {
		return sortWeight;
	}

	/**
	 * @param sortWeight the sortWeight to set
	 */
	public void setSortWeight(Integer sortWeight) {
		this.sortWeight = sortWeight;
	}

	/**
	 * @return the quotaSortNo
	 */
	public Integer getQuotaSortNo() {
		return quotaSortNo;
	}

	/**
	 * @param quotaSortNo the quotaSortNo to set
	 */
	public void setQuotaSortNo(Integer quotaSortNo) {
		this.quotaSortNo = quotaSortNo;
	}

	/**
	 * @return the depositRate
	 */
	public BigDecimal getDepositRate() {
		return depositRate;
	}

	/**
	 * @param depositRate the depositRate to set
	 */
	public void setDepositRate(BigDecimal depositRate) {
		this.depositRate = depositRate;
	}

	/**
	 * @return the isQuato
	 */
	public Integer getIsQuato() {
		return isQuato;
	}

	/**
	 * @param isQuato the isQuato to set
	 */
	public void setIsQuato(Integer isQuato) {
		this.isQuato = isQuato;
	}

	public Date getDepositDeliveryDay() {
		return depositDeliveryDay;
	}

	public void setDepositDeliveryDay(Date depositDeliveryDay) {
		this.depositDeliveryDay = depositDeliveryDay;
	}

	public String getTouristVisible() {
		return touristVisible;
	}

	public void setTouristVisible(String touristVisible) {
		this.touristVisible = touristVisible;
	}
	
}
